/**
 * 给定一个整数数组 nums和一个目标值 target, 请你在该数组中找出和为目标值的那两个整数，并返回他们的数组下标。
 * 你可以假设每种输入只会对应一个答案。但是，数组中同一个元素不能使用两遍。示例:
 * 给定nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1]=2 + 7=9所以返回[0, 1]
 *
 * let twoSum = function (nums, target) { 实现你的代码  }
 *
 */
let twoSum = function (nums, target) {
  if (!Array.isArray(nums)) return
  let len = nums.length,
    res
  for (let i = 0; i < len - 1; i++) {
    for (let j = i + 1; j < len; j++) {
      if (nums[i] + nums[j] === target) res = [i, j]
    }
  }

  return res
}

// 动态哈希表法
// var twoSum = function (nums, target) {
//   const map = new Map()
//   for (let i = 0; i < nums.length; i++) {
//     const num1 = nums[i]
//     const num2 = target - nums[i]
//     if (map.has(num2)) {
//       return [map.get(num2), i]
//     } else {
//       map.set(num1, i)
//     }
//   }
// }

let res = twoSum([2, 7, 11, 15], 26)

console.log(res)
